package bz.ziro.kanbe.logic;

import java.io.StringWriter;
import java.util.logging.Logger;

import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine;

/**
 * テンプレート用ロジック
 * @author sickboy
 *
 */
public class TemplateLogic {
	
    //@SuppressWarnings("unused")
    private static final Logger logger = Logger.getLogger(HtmlLogic.class.getName());

    /**
     * テンプレートの初期化
     */
	public static void init() {
        try {
            //Velocity用のログ機能をオフする(GAE)
            Velocity.addProperty(VelocityEngine.RUNTIME_LOG_LOGSYSTEM_CLASS,
                                 "org.apache.velocity.runtime.log.NullLogSystem");
            //Singletonだから常に呼び出してOK
            Velocity.init();
        } catch(Exception ex) {
        	logger.warning(ex.getMessage());
        }
	}

	/**
	 * テンプレートが読み込める形かを取得
	 * @param template
	 * @return
	 */
	public static String compile(String template) {
		//初期化を行う
		init();
        try {
            StringWriter html = new StringWriter();
        	VelocityContext context = new VelocityContext();
            //解析する
            Velocity.evaluate(context, html, "kanbeSite", template);
        } catch ( Exception ex ) {
        	String msg = ex.toString();
        	if ( msg.length() > 150 ) {
        		msg = ex.toString().substring(0,150) + "...";
        	}
            return msg;
        }
		return null;
	}
}
